import { editTarget } from '@/api/subsystem'

/**
 * 更新资源信息
 * @param {number/string} id - 资源的唯一标识符
 * @param {Object} resource - 要更新的资源对象，必须包含状态属性 state
 * @returns {Promise} - 如果资源状态为'stop'，则尝试更新资源并返回一个包含更新结果的Promise；
 *                      如果资源状态不为'stop'，则直接返回一个被拒绝的Promise。
 */
export function updateResource(id, resource) {
  return new Promise((resolve, reject) => {
    try {
      if (resource.state === 'stop') {
        // 当资源状态为'stop'时，尝试编辑目标资源
        const res = editTarget(id, resource)
        resolve(res.data) // 成功更新后，解决Promise，返回编辑结果
      } else {
        reject() // 资源状态不为'stop'时，直接拒绝Promise
      }
    } catch (error) {
      reject(error) // 编辑过程中发生异常，拒绝Promise并传递错误信息
      // 打印异常信息
    }
  })
}

/**
 * 编辑对应系统信息
 * @param {目标系统id} id
 * @param {新系统信息} system
 */
export function editSubsystem(id, system) {
  return new Promise((resolve, reject) => {
    try {
      const res = editTarget(id, system)
      resolve(res.data)
    } catch (error) {
      reject(error)
      // 打印异常信息
    }
  })
}
